---------------------------------
--- CHAM: Adding print to IMP ---
---------------------------------

Suggested steps to follow in order to extend the oringinal CHAM of IMP in Maude
to include a print statement:

1) Modify imp-cham.maude: Include output.maude at the begining, and 
   add Maude commands for executing sumPrintPgm at the end.

2) Run imp-cham.maude: Everything working before should still work;
   sumPrintPgm gets stuck when the first print statement is encountered.

3) Modify imp-semantics-cham.maude:
   a) Include module OUTPUT in IMP-SEMANTICS-CHAM and subsort Output to Molecule.
   b) Modify the CHAM rule of variable declarations to initialize the solution
      to one that also includes the (empty) output molecule.

4) Modify imp-cham.maude: Add the output buffer molecule, holding an empty
   buffer, to any solution holding an explicit state molecule that appears
   in any of the concrete rewrite or search commands.

5) Run imp-cham.maude: Everything working before should still work, and should
   include an empty output molecule in the result solutions; sumPrintPgm
   still gets stuck when the first print statement is encountered.

6) Add the actual CHAM semantics of print, which means:
   a) A heating/cooling rule/equation in imp-heating-cooling.maude.
   b) A reaction rule in imp-semantics-cham.maude.

8) Run imp-cham.maude and check that all programs evaluate properly.


------------------------------
--- Observations, thoughts ---
------------------------------

1) We only had to include the output-specific infrastructure and rules,
   without changing any of the existing rules for statements or expressions.

2) We also had to change the rule for programs, to initiate the empty output buffer.
